@@ -8,8 +8,9 @@ from django_logit import logit |
||
8 | 8 |
from django_response import response |
9 | 9 |
from TimeConvert import TimeConvert as tc |
10 | 10 |
|
11 |
-from mch.models import ConsumeInfoSubmitLogInfo, AdministratorInfo |
|
12 |
-from utils.error.errno_utils import AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode, ProductMachineStatusCode |
|
11 |
+from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo |
|
12 |
+from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode, |
|
13 |
+ ProductMachineStatusCode) |
|
13 | 14 |
|
14 | 15 |
|
15 | 16 |
WECHAT = settings.WECHAT |
@@ -5,7 +5,8 @@ from django_file_upload import views as file_views |
||
5 | 5 |
|
6 | 6 |
from account import tourguide_views |
7 | 7 |
from account import views as account_views |
8 |
-from api import admin_views, clerk_views, distributor_views, encrypt_views, mch_views, model_views, operator_views, sr_views |
|
8 |
+from api import (admin_views, clerk_views, distributor_views, encrypt_views, mch_views, model_views, operator_views, |
|
9 |
+ sr_views) |
|
9 | 10 |
from box import views as box_views |
10 | 11 |
from geo import views as geo_views |
11 | 12 |
from group import (groupuser_views, lensman_views, tourguidegroup_views, tourguidegroupadmin_views, |
@@ -8,7 +8,8 @@ from TimeConvert import TimeConvert as tc |
||
8 | 8 |
|
9 | 9 |
from integral.models import SaleclerkSubmitLogInfo |
10 | 10 |
from mch.models import BrandInfo, DistributorInfo, ModelInfo, SaleclerkInfo |
11 |
-from sales.models import SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo, SuperSalesResponsibilityInfoModelsSaleStatisticInfo |
|
11 |
+from sales.models import (SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo, |
|
12 |
+ SuperSalesResponsibilityInfoModelsSaleStatisticInfo) |
|
12 | 13 |
|
13 | 14 |
|
14 | 15 |
logger = logging.getLogger('console') |
@@ -1,7 +1,7 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 | 3 |
from django.contrib import admin |
4 |
-from django_admin import ReadOnlyModelAdmin, AdvancedExportExcelModelAdmin |
|
4 |
+from django_admin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin |
|
5 | 5 |
|
6 | 6 |
from integral.models import SaleclerkIntegralIncomeExpensesInfo, SaleclerkSubmitLogInfo |
7 | 7 |
|
@@ -112,3 +112,15 @@ def DJANGO_FILE_UPLOAD_CALLBACK_FUNC(request, file_path=None, file_url=None): |
||
112 | 112 |
operator_id=optor_id, |
113 | 113 |
app_version=version, |
114 | 114 |
) |
115 |
+ |
|
116 |
+ zbar = int(request.POST.get('zbar', 0)) |
|
117 |
+ if zbar: |
|
118 |
+ import os |
|
119 |
+ from utils.zbar.zbar import zbar |
|
120 |
+ |
|
121 |
+ file_path = os.path.join(settings.MEDIA_ROOT, file_path) |
|
122 |
+ zbars = zbar(file_path) |
|
123 |
+ |
|
124 |
+ return { |
|
125 |
+ 'zbars': zbars, |
|
126 |
+ } |
@@ -356,6 +356,7 @@ def clerk_integral_list_api(request): |
||
356 | 356 |
'left_integral': clerk.integral, |
357 | 357 |
}) |
358 | 358 |
|
359 |
+ |
|
359 | 360 |
@logit |
360 | 361 |
def clerk_model_list_api(request): |
361 | 362 |
brandID = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_PK) |
@@ -2,11 +2,11 @@ |
||
2 | 2 |
|
3 | 3 |
from __future__ import division |
4 | 4 |
|
5 |
-import xlrd |
|
6 | 5 |
from django.conf import settings |
7 | 6 |
from pysnippets.strsnippets import strip |
8 | 7 |
from TimeConvert import TimeConvert as tc |
9 | 8 |
|
9 |
+import xlrd |
|
10 | 10 |
from mch.models import BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, ModelInfo |
11 | 11 |
from statistic.models import (ConsumeDistributorSaleStatisticInfo, ConsumeModelSaleStatisticInfo, |
12 | 12 |
ConsumeProvinceSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo, |
@@ -1,10 +1,10 @@ |
||
1 | 1 |
Django==1.11.20 |
2 |
-django-admin==1.3.2 |
|
2 |
+django-admin==2.0.0 |
|
3 | 3 |
django-cors-headers==2.4.0 |
4 | 4 |
django-curtail-uuid==1.0.4 |
5 | 5 |
django-detect==1.0.8 |
6 |
-django-file-md5==1.0.2 |
|
7 |
-django-file-upload==1.1.0 |
|
6 |
+django-file-md5==1.0.3 |
|
7 |
+django-file-upload==1.1.1 |
|
8 | 8 |
django-ip==1.0.2 |
9 | 9 |
django-json-render==1.0.2 |
10 | 10 |
django-json-response==1.1.5 |
@@ -12,13 +12,12 @@ django-logit==1.1.3 |
||
12 | 12 |
django-mobi==0.1.7 |
13 | 13 |
django-models-ext==1.1.8 |
14 | 14 |
django-multidomain==1.1.4 |
15 |
-django-paginator2==1.0.4 |
|
15 |
+django-paginator2==1.1.3 |
|
16 | 16 |
django-query==1.0.3 |
17 | 17 |
django-redis-connector==1.0.1 |
18 | 18 |
django-response==1.1.1 |
19 | 19 |
django-rlog==1.0.7 |
20 | 20 |
django-shortuuidfield==0.1.3 |
21 | 21 |
django-six==1.0.4 |
22 |
-django-uniapi==1.0.5 |
|
23 |
-django-we==1.4.2 |
|
24 |
-djangorestframework==3.7.7 |
|
22 |
+django-uniapi==1.0.7 |
|
23 |
+django-we==1.5.3rk==3.7.7 |
@@ -2,7 +2,8 @@ |
||
2 | 2 |
|
3 | 3 |
from django.contrib import admin |
4 | 4 |
|
5 |
-from sales.models import SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo, SuperSalesResponsibilityInfoModelsSaleStatisticInfo |
|
5 |
+from sales.models import (SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo, |
|
6 |
+ SuperSalesResponsibilityInfoModelsSaleStatisticInfo) |
|
6 | 7 |
|
7 | 8 |
|
8 | 9 |
class SalesResponsibilityInfoAdmin(admin.ModelAdmin): |
@@ -3,4 +3,5 @@ from __future__ import unicode_literals |
||
3 | 3 |
|
4 | 4 |
from django.test import TestCase |
5 | 5 |
|
6 |
+ |
|
6 | 7 |
# Create your tests here. |
@@ -9,8 +9,9 @@ from TimeConvert import TimeConvert as tc |
||
9 | 9 |
|
10 | 10 |
from account.models import UserInfo |
11 | 11 |
from mch.models import DistributorInfo |
12 |
-from sales.models import SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo, SuperSalesResponsibilityInfoModelsSaleStatisticInfo |
|
13 |
-from utils.error.errno_utils import UserStatusCode, SalesResponsibilityStatusCode |
|
12 |
+from sales.models import (SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo, |
|
13 |
+ SuperSalesResponsibilityInfoModelsSaleStatisticInfo) |
|
14 |
+from utils.error.errno_utils import SalesResponsibilityStatusCode, UserStatusCode |
|
14 | 15 |
|
15 | 16 |
|
16 | 17 |
@logit |
@@ -0,0 +1,40 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+ |
|
3 |
+from PIL import Image, ImageEnhance |
|
4 |
+from pyzbar import pyzbar |
|
5 |
+ |
|
6 |
+ |
|
7 |
+# The zbar DLLs are included with the Windows Python wheels. |
|
8 |
+# On other operating systems, you will need to install the zbar shared library. |
|
9 |
+# |
|
10 |
+# Mac OS X: |
|
11 |
+# brew install zbar |
|
12 |
+# |
|
13 |
+# Linux: |
|
14 |
+# sudo apt-get install libzbar0 |
|
15 |
+# |
|
16 |
+# Install this Python wrapper; use the second form to install dependencies of the command-line scripts: |
|
17 |
+# pip install pyzbar |
|
18 |
+ |
|
19 |
+ |
|
20 |
+def zbar(path): |
|
21 |
+ img = Image.open(path) |
|
22 |
+ |
|
23 |
+ # img = ImageEnhance.Brightness(img).enhance(2.0) # 增加亮度 |
|
24 |
+ # img = ImageEnhance.Sharpness(img).enhance(17.0) # 锐利化 |
|
25 |
+ # img = ImageEnhance.Contrast(img).enhance(4.0) # 增加对比度 |
|
26 |
+ # img = img.convert('L') # 灰度化 |
|
27 |
+ |
|
28 |
+ # img.show() |
|
29 |
+ |
|
30 |
+ barcodes = pyzbar.decode(img) |
|
31 |
+ |
|
32 |
+ # for barcode in barcodes: |
|
33 |
+ # barcodeData = barcode.data.decode("utf-8") |
|
34 |
+ # print(barcodeData) |
|
35 |
+ |
|
36 |
+ return [bar.data.decode('utf-8') for bar in barcodes] |
|
37 |
+ |
|
38 |
+ |
|
39 |
+if __name__ == '__main__': |
|
40 |
+ print zbar('zbar.jpg') |